// 理解JavaScript中的对象

// 借助于 function 关键字来定义"对象"(相当于Java中的类)
// 人为地将 "对象" 名 每个单词首字母 大写，以便于区分 "对象" 和 普通函数
// 定义一个"对象"时，同时定义了一个构造函数
function Student( id , name , gender ){
    // 使用 this 关键字可以为 新创建的 实例 绑定 属性
    this.id = id ;
    this.name = name ;
    this.gender = gender ;
    // 采用 "函数表达式" 定义实例函数
    this.produce = function(){
        // 在 字符串模板字面量 中使用 实例属性
        console.log( `大家好，我是${this.name}` );
    }
}

// 创建"对象"的实例: 通过 new 和 构造函数 来创建
let s = new Student( 1 , '张翠山' , '男' );
// 打印实例中各个属性的值
console.log( s.id , s.name , s.gender );
s.produce();

// 创建"对象"的实例: 通过 new 和 构造函数 来创建
let x = new Student( 2 , '张松溪' , '男' );
console.log( x.id , x.name , x.gender );
x.produce();

// 类似于Java语言中类的对象，我们称作 类级别对象
// 类似于Java语言中实例的对象，我们称作 实例级别对象